package com.foxire.StringDemo;

public class StringDemo1 {
    public static void main(String[] args) {
        // 目标：掌握创建字符串对象，封装要处理的字符串数据，调用String提供的方法处理字符串。
        // 1、推荐方式一:直接””就可以创建字符串对象，封装字符串数据。
        String s1 = "hello";
        System.out.println(s1);
        System.out.println(s1.length());

        // 2、方式二:通过构造器初始化对象。
        String s2 = new String("hello"); // 不推荐
        System.out.println(s2);

        char[] chs = {'h','e','l','l','o'};
        String s3 = new String(chs);
        System.out.println(s3);

        byte[] bts = {97,98,99,100,101};
        String s4 = new String(bts);
        System.out.println(s4);

        System.out.println("--------------------------------------");

        // 只要是以 "..." 方式写出的字符串对象,会存储到字符串常量池且相同内容的字符串只存储一份;
        String t1 = "hello";
        String t2 = "hello";
        System.out.println(t1 == t2);
        // 通过new方式创建字符串对象，每new一次都会产生一个新的对象放在堆内存中
        String t3 = new String("hello");
        String t4 = new String("hello");
        System.out.println(t3 == t4);

        System.out.println("------------------------------------------");

    }
}
// 只要是以 "..." 方式写出的字符串对象,会存储到字符串常量池且相同内容的字符串只存储一份;
// 通过new方式创建字符串对象，每new一次都会产生一个新的对象放在堆内存中